package com.zx.onlineeducation.service.ucenter.service;

import com.zx.onlineeducation.service.ucenter.entity.MemberDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zx.onlineeducation.service.ucenter.entity.vo.LoginVO;
import com.zx.onlineeducation.service.ucenter.entity.vo.RegisterVO;

/**
 * <p>
 * 会员 服务类
 * </p>
 *
 * @author 郑雪
 * @since 2022-01-25
 */
public interface MemberService extends IService<MemberDO> {

    /**
     * 会员登录
     *
     * @param loginVO 会员登录视图对象 {@link LoginVO}
     * @return token字符串
     * @author 郑雪
     * @since 2022-01-25
     */
    String login(LoginVO loginVO);

    /**
     * 会员注册
     *
     * @param registerVO 会员注册视图对象 {@link RegisterVO}
     * @return 成功true，失败false
     * @author 郑雪
     * @since 2022-01-25
     */
    boolean register(RegisterVO registerVO);

    /**
     * 根据手机号查询会员
     *
     * @param mobile 手机号
     * @return 会员数据对象 {@link MemberDO}
     * @author 郑雪
     * @since 2022-01-25
     */
    MemberDO getMemberByMobile(String mobile);

    /**
     * 根据手机号查询会员是否存在
     *
     * @param mobile 手机号
     * @return 已存在true，不存在false
     * @author 郑雪
     * @since 2022-01-25
     */
    boolean existMemberByMobile(String mobile);

    /**
     * 根据微信openid查询会员
     *
     * @param openid 微信openid（授权用户唯一标识）
     * @return 会员数据对象 {@link MemberDO}
     * @author 郑雪
     * @since 2022-01-28
     */
    MemberDO getMemberByOpenid(String openid);

}
